package com.rongshu.api;


import com.rongshu.view.base.mvp.INetBean;
import com.rongshu.view.discovery.bean.ArticleDetailsResponse;
import com.rongshu.view.discovery.bean.ArticleListResponse;
import com.rongshu.view.discovery.bean.EventListResponse;
import com.rongshu.view.discovery.bean.IsAtUserBlackResponse;
import com.rongshu.view.discovery.bean.SearchAllResponse;
import com.rongshu.view.discovery.bean.SearchAuthorResponse;
import com.rongshu.view.discovery.bean.SearchBody;
import com.rongshu.view.discovery.bean.SerialChapterListResponse;
import com.rongshu.view.discovery.bean.SerialListResponse;
import com.rongshu.view.discovery.bean.UserInfoResponse;
import com.rongshu.view.home.bean.AdvertResponse;
import com.rongshu.view.home.bean.BannerResponse;
import com.rongshu.view.home.bean.LabelResponse;
import com.rongshu.view.home.bean.RecommendAuthorResponse;
import com.rongshu.view.home.bean.RecommendEditResponse;
import com.rongshu.view.home.bean.RecommendReaderResponse;
import com.rongshu.view.home.bean.VersionUpdateResponse;
import com.rongshu.view.home.entity.ArticleAttribute;
import com.rongshu.view.home.entity.ArticleDetails;
import com.rongshu.view.home.entity.ArticleLike;
import com.rongshu.view.home.entity.CatalogInfo;
import com.rongshu.view.home.entity.CommenOneAllDetails;
import com.rongshu.view.home.entity.CommentDetails;
import com.rongshu.view.home.entity.ContentClass;
import com.rongshu.view.home.entity.DaySignDetailsResponse;
import com.rongshu.view.home.entity.DaySignInfo;
import com.rongshu.view.home.entity.DaySignListResponse;
import com.rongshu.view.home.entity.MakeDaySignBody;
import com.rongshu.view.home.entity.PenpalHomeResponse;
import com.rongshu.view.home.entity.PeopleRecommendRespose;
import com.rongshu.view.home.entity.RecomendMsg;
import com.rongshu.view.home.entity.RecommendClass;
import com.rongshu.view.home.entity.RecommendResponse;
import com.rongshu.view.home.entity.ShareInformation;
import com.rongshu.view.home.entity.UserAttention;
import com.rongshu.view.home.entity.UserCollect;
import com.rongshu.view.home.entity.UserInfo;
import com.rongshu.view.home.entity.UserProps;
import com.rongshu.view.login.entity.LoginQuestion;
import com.rongshu.view.login.entity.PasswordLogin;
import com.rongshu.view.login.entity.PerfectPenName;
import com.rongshu.view.login.entity.QuestionFeedback;
import com.rongshu.view.login.entity.ReportClass;
import com.rongshu.view.login.entity.ResetPassword;
import com.rongshu.view.login.entity.ThirdPartyClass;
import com.rongshu.view.login.entity.UpLoadFile;
import com.rongshu.view.login.entity.UpdateUserClass;
import com.rongshu.view.login.entity.VerificationCode;
import com.rongshu.view.mediaPlayer.bean.AudiobookDetailsResponse;
import com.rongshu.view.mediaPlayer.bean.AudiobookListResponse;
import com.rongshu.view.penpal.bean.AddNoticeBody;
import com.rongshu.view.penpal.bean.ArticleColumnsResponse;
import com.rongshu.view.penpal.bean.ArticleLabelsResponse;
import com.rongshu.view.penpal.bean.EditNoticeBody;
import com.rongshu.view.penpal.bean.EditPenpalMsgBody;
import com.rongshu.view.penpal.bean.MemberMsgResponse;
import com.rongshu.view.penpal.bean.PenpalArticleResponse;
import com.rongshu.view.penpal.bean.PenpalDetailsResponse;
import com.rongshu.view.penpal.bean.PenpalJoinVerifyResponse;
import com.rongshu.view.penpal.bean.PenpalMessageResponse;
import com.rongshu.view.penpal.bean.PenpalNoticeResponse;
import com.rongshu.view.penpal.bean.PenpalRecommendArticleResponse;
import com.rongshu.view.penpal.bean.PenpalResponse;
import com.rongshu.view.penpal.bean.PostCommentBody;
import com.rongshu.view.penpal.bean.PostDetailsResponse;
import com.rongshu.view.submitArticle.bean.DraftResponse;
import com.rongshu.view.submitArticle.bean.SavaDraftBody;
import com.rongshu.view.submitArticle.bean.SaveDraftResponse;
import com.rongshu.view.submitArticle.bean.SubmitArticleBody;
import com.rongshu.view.submitArticle.bean.SubmitPostBody;
import com.rongshu.view.userInfo.entity.AboutUs;
import com.rongshu.view.userInfo.entity.AccountInformation;
import com.rongshu.view.userInfo.entity.Article;
import com.rongshu.view.userInfo.entity.AtMineMessage;
import com.rongshu.view.userInfo.entity.CardBagInfo;
import com.rongshu.view.userInfo.entity.City;
import com.rongshu.view.userInfo.entity.CollectedArticle;
import com.rongshu.view.userInfo.entity.CollectedWorkStatusCount;
import com.rongshu.view.userInfo.entity.CommentMeMessage;
import com.rongshu.view.userInfo.entity.DirectChat;
import com.rongshu.view.userInfo.entity.DirectMessage;
import com.rongshu.view.userInfo.entity.EnshrineInfo;
import com.rongshu.view.userInfo.entity.GiveLikeMessage;
import com.rongshu.view.userInfo.entity.MessageInfo;
import com.rongshu.view.userInfo.entity.OrderInfo;
import com.rongshu.view.userInfo.entity.PayDetail;
import com.rongshu.view.userInfo.entity.PaySetMeal;
import com.rongshu.view.userInfo.entity.PostVipAuthentication;
import com.rongshu.view.userInfo.entity.PrivacyInfo;
import com.rongshu.view.userInfo.entity.Province;
import com.rongshu.view.userInfo.entity.Recommend;
import com.rongshu.view.userInfo.entity.RecyclerStationInfo;
import com.rongshu.view.userInfo.entity.SignDayResponse;
import com.rongshu.view.userInfo.entity.SignInBody;
import com.rongshu.view.userInfo.entity.SignListResponse;
import com.rongshu.view.userInfo.entity.SystemMessage;
import com.rongshu.view.userInfo.entity.ThirdPartyInfo;
import com.rongshu.view.userInfo.entity.TodayRecord;
import com.rongshu.view.userInfo.entity.UpLoadImage;
import com.rongshu.view.userInfo.entity.sixinClass;

import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;

public interface INewsApi {
    /**
     * 获取手机验证码
     */
    @GET("/api/Lib/GetSMSCode")
    Observable<VerificationCode> getPhoneVerficationCode(@Query("mobile") String mobile,
                                                         @Query("type") int type, @Query("sign") String sign);

    /**
     * 用户手机号和短信验证码登陆
     */
    @GET("/api/User/GetUserRegisterforMobileCode")
    Observable<PasswordLogin> getUserRegisterforMobileCode(@Query("mobile") String mobile, @Query("code") String code,
                                                           @Query("registrationid") String registrationid, @Query("sign") String sign);

    /**
     * 忘记密码
     */
    @POST("/api/User/PostResetPassword")
    Observable<ResetPassword> postResetPassword(@Query("mobile") String mobile, @Query("sms_code") String sms_code,
                                                @Query("sign") String sign, @Body UpdateUserClass updateUserClass);

    /**
     * 通过手机号码，密码登陆
     */
    @GET("/api/User/GetUserRegisterforMobilePwd")
    Observable<PasswordLogin> getUserRegisterforMobilePwd(@Query("mobile") String mobile, @Query("pwd") String pwd,
                                                          @Query("registrationid") String registrationid, @Query("sign") String sign);

    /**
     * 文章详情
     */
    @GET("/api/Home/GetPostDetail")
    Observable<ArticleDetails> getPostDetail(@Query("user_id") int user_id, @Query("pageIndex") int pageIndex,
                                             @Query("pageSize") int pageSize, @Query("sign") String sign);

    /**
     * 获取登录遇到的问题
     */
    @GET("/api/Lib/GetLoginProblems")
    Observable<LoginQuestion> getLoginProblems(@Query("rnd") int rnd, @Query("sign") String sign);

    /**
     * 1反馈2举报用户/3举报文章/4举报贴子
     */
    @POST("/api/User/PostReportUser")
    Observable<QuestionFeedback> postReportUser(@Query("user_id") int user_id, @Query("type") int type, @Query("user_id_to") int user_id_to,
                                                @Query("reporttype") int reporttype, @Query("sign") String sign, @Body ReportClass reportClass);

    /**
     * 获取省份
     *
     * @param rnd
     * @param sign
     * @return
     */
    @GET("/api/Lib/GetProvince")
    Observable<Province> getChinaAddr(@Query("rnd") String rnd, @Query("sign") String sign);

    /**
     * 获取city
     *
     * @param parent_id
     * @param sign
     * @return
     */
    @GET("/api/Lib/GetCity")
    Observable<City> getCity(@Query("parent_id") int parent_id, @Query("sign") String sign);

    /**
     * 获取banner
     */
    @GET("api/Found/GetDiscoveryCarousel")
    Observable<BannerResponse> getBanner(@Query("user_id") int user_id,
                                         @Query("sign") String sign);

    /**
     * 获取发现页面-推荐读者
     */
    @GET("api/Found/GetRecommendAuthors")
    Observable<RecommendAuthorResponse> getRecommendAuthors(@Query("user_id") int user_id,
                                                            @Query("pageIndex") int pageIndex,
                                                            @Query("pageSize") int pageSize,
                                                            @Query("sign") String sign);

    /**
     * 获取发现页面-编辑推荐
     */
    @GET("api/Found/GetEditRecommendationShow")
    Observable<RecommendEditResponse> getRecommentEdits(@Query("user_id") int user_id,
                                                        @Query("sign") String sign);

    /**
     * 获取推荐语
     */
    @GET("api/Home/GetRecommendMsg")
    Observable<RecomendMsg> getRecommendMsg(@Query("contribute_id") int contribute_id,
                                            @Query("contribute_type") int contribute_type,
                                            @Query("pageIndex") int pageIndex,
                                            @Query("pageSize") int pageSize,
                                            @Query("sign") String sign);

    /**
     * 获取发现页面-读者推荐
     */
    @GET("api/Found/GetReadRecommend")
    Observable<RecommendReaderResponse> getRecommentReader(@Query("user_id") int user_id,
                                                           @Query("pageIndex") int pageIndex,
                                                           @Query("pageSize") int pageSize,
                                                           @Query("sign") String sign);

    /**
     * 关注
     */
    @GET("api/Lib/GetConcern")
    Observable<INetBean> ConcernWith(@Query("user_id") int user_id,
                                     @Query("contribute_id") int contribute_id,
                                     @Query("user_id_to") int user_id_to,
                                     @Query("sign") String sign);

    /**
     * 取消关注
     */
    @GET("api/Lib/GetNoConcern")
    Observable<INetBean> cancelConcernWith(@Query("user_id") int user_id,
                                           @Query("contribute_id") int contribute_id,
                                           @Query("user_id_to") int user_id_to,
                                           @Query("sign") String sign);

    /**
     * 获取我是否关注过某一个用户
     */
    @GET("api/Home/GetIsGuanZhu")
    Observable<UserAttention> getIsGuanZhu(@Query("user_id") int user_id,
                                           @Query("ta_user_id") int ta_user_id,
                                           @Query("sign") String sign);

    /**
     * 获取标签
     */
    @GET("api/Lib/Getlabel")
    Observable<LabelResponse> getLabels(@Query("rnd") int rnd,
                                        @Query("type") int type,
                                        @Query("sign") String sign);

    /**
     * 获取关键字标签
     */
    @GET("api/Lib/GetkeywordTagSelect")
    Observable<LabelResponse> getSearchRecommendLabel(@Query("user_id") int user_id,
                                                      @Query("type") int type,
                                                      @Query("sign") String sign);

    /**
     * 综合搜索
     */
    @POST("api/Found/PostkeywordSearch0")
    Observable<SearchAllResponse> searchAll(@Query("user_id") int user_id,
                                            @Query("pageIndex") int pageIndex,
                                            @Query("pageSize") int pageSize,
                                            @Query("sign") String sign,
                                            @Body SearchBody body);

    /**
     * 文章搜索
     */
    @POST("api/Found/PostkeywordSearch1")
    Observable<ArticleListResponse> searchArticle(@Query("user_id") int user_id,
                                                  @Query("pageIndex") int pageIndex,
                                                  @Query("pageSize") int pageSize,
                                                  @Query("sign") String sign,
                                                  @Body SearchBody body);

    /**
     * 用户搜索
     */
    @POST("api/Found/PostkeywordSearch2")
    Observable<SearchAuthorResponse> searchAuthor(@Query("user_id") int user_id,
                                                  @Query("pageIndex") int pageIndex,
                                                  @Query("pageSize") int pageSize,
                                                  @Query("sign") String sign,
                                                  @Body SearchBody body);

    /**
     * 编辑推荐(根据传入编辑推荐模板ID获取不同的数据)
     */
    @GET("api/Found/GetEditorsRecommend")
    Observable<ArticleListResponse> getArticleListById(@Query("user_id") int user_id,
                                                       @Query("Templates_id") int Templates_id,
                                                       @Query("pageIndex") int pageIndex,
                                                       @Query("pageSize") int pageSize,
                                                       @Query("sign") String sign);

    /**
     * 获取他人用户主页信息
     */
    @GET("api/User/GetUserMainPageInfo")
    Observable<UserInfoResponse> getOtherUserInfo(@Query("user_id") int user_id,
                                                  @Query("user_id_to") int user_id_to,
                                                  @Query("sign") String sign);

    /**
     * 单个文章详情
     */
    @GET("api/Home/GetOnePostDetail")
    Observable<ArticleDetailsResponse> getArticleDetails(@Query("user_id") int user_id,
                                                         @Query("contribute_id") int contribute_id,
                                                         @Query("contribute_type") int contribute_type,
                                                         @Query("type") int type,
                                                         @Query("topic_id") int topic_id,
                                                         @Query("sign") String sign);

    /**
     * 黑名单
     */
    @GET("api/User/GetAddBlackList")
    Observable<Object> blackListOption(@Query("user_id") int user_id,
                                       @Query("user_id_to") int user_id_to,
                                       @Query("sign") String sign);

    /**
     * 完善笔名
     */
    @POST("api/User/PostPerfectPenName")
    Observable<INetBean> perfectPanName(@Query("user_id") int user_id, @Query("sign") String sign, @Body PerfectPenName perfectPenName);

    /**
     * 保存草稿
     */
    @POST("api/Article/PostSaveDraft")
    Observable<SaveDraftResponse> saveDraft(@Query("user_id") int user_id,
                                            @Query("cg_id") int cg_id,
                                            @Query("serial_id") int serial_id,
                                            @Query("number") int number,
                                            @Query("sign") String sign,
                                            @Body SavaDraftBody caogao);

    /**
     * 连载目录
     */
    @GET("api/Home/GetCatalogue")
    Observable<CatalogInfo> getCatalogue(@Query("user_id") int user_id,
                                         @Query("serialize_id") int serialize_id,
                                         @Query("pageIndex") int pageIndex,
                                         @Query("pageSize") int pageSize,
                                         @Query("sign") String sign);


    /**
     * APP投稿设置-选择文章栏目
     *
     * @param user_id
     * @param sign
     * @return
     */
    @GET("api/Article/GetContributeSetUp")
    Observable<ArticleColumnsResponse> getSubmitArticleColumns(@Query("user_id") int user_id,
                                                               @Query("sign") String sign);

    /**
     * APP投稿设置-主题子栏目
     *
     * @param user_id
     * @param sign
     * @return
     */
    @GET("api/Article/GetColumnList")
    Observable<ArticleLabelsResponse> getSubmitArticleLabels(@Query("user_id") int user_id,
                                                             @Query("theme_id") int theme_id,
                                                             @Query("sign") String sign);

    /**
     * 确认投稿
     */
    @POST("api/Article/PostConfirmContribute")
    Observable<INetBean> submitArticle(@Query("user_id") int user_id,
                                       @Query("cg_id") int cg_id,
                                       @Query("lianzai_id") int lianzai_id,
                                       @Query("isserial") boolean isserial,
                                       @Query("number") int number,
                                       @Query("sign") String sign,
                                       @Body SubmitArticleBody tougao);

    /**
     * 文章点赞/帖子点赞
     */
    @GET("api/Home/Getlike/{id}")
    Observable<ArticleLike> getlike(@Path("id") int id, @Query("user_id") int user_id, @Query("type") String type,
                                    @Query("sign") String sign);

    /**
     * 取消文章点赞
     */
    @GET("api/Home/GetOfflike")
    Observable<ArticleLike> getOfflike(@Query("user_id") int user_id, @Query("type") String type,
                                       @Query("contribute_id") int contribute_id, @Query("sign") String sign);

    /**
     * 单个文章详情
     */
    @GET("api/Home/GetOnePostDetail")
    Observable<ArticleDetailsResponse> getOnePostDetail(@Query("user_id") int user_id, @Query("contribute_id") int contribute_id, @Query("type") int type,
                                                        @Query("topic_id") int topic_id, @Query("sign") String sign);

    /**
     * 获取推荐的笔友会列表
     */
    @GET("api/PenPalwill/GetRecommend")
    Observable<PenpalResponse> getRecommendPenpal(@Query("user_id") int user_id,
                                                  @Query("pageIndex") int pageIndex,
                                                  @Query("pageSize") int pageSize,
                                                  @Query("sign") String sign);


    /**
     * 获取当前笔会详情
     */
    @GET("api/PenPalwill/GetPenpalwillDetails")
    Observable<PenpalDetailsResponse> getPenpalDetailsById(@Query("user_id") int user_id,
                                                           @Query("penpalwill_id") int penpalwill_id,
                                                           @Query("sign") String sign);

    /**
     * 获取当前笔会信息
     */
    @GET("api/PenPalwill/GetPenpalwillshow")
    Observable<PenpalMessageResponse> getPenpalMessageById(@Query("user_id") int user_id,
                                                           @Query("penpalwill_id") int penpalwill_id,
                                                           @Query("sign") String sign);


    /**
     * 获取笔会帖子列表/获取笔会文章列表
     */
    @GET("api/PenPalwill/GetPenpalwillPosts")
    Observable<PenpalArticleResponse> getPenpalArticles(@Query("user_id") int user_id,
                                                        @Query("penpalwill_id") int penpalwill_id,
                                                        @Query("type") int type,
                                                        @Query("pageIndex") int pageIndex,
                                                        @Query("pageSize") int pageSize,
                                                        @Query("sign") String sign);

    /**
     * 申请加入笔友会
     */
    @GET("api/PenPalwill/GetpenpalwillPersonnelApply")
    Observable<INetBean> requestAddPenpal(@Query("user_id") int user_id,
                                          @Query("penpalwill_id") int penpalwill_id,
                                          @Query("sign") String sign);

    /**
     * 退出笔友会
     */
    @GET("api/PenPalwill/GetExitpenpalwill")
    Observable<INetBean> exitPenpal(@Query("user_id") int user_id,
                                    @Query("penpalwill_id") int penpalwill_id,
                                    @Query("sign") String sign);

    /**
     * 获取笔友会首页推荐的文章/帖子
     */
    @GET("api/PenPalwill/GetRecommendTopic")
    Observable<PenpalRecommendArticleResponse> getPenpalRecommendArticles(@Query("user_id") int user_id,
                                                                          @Query("pageIndex") int pageIndex,
                                                                          @Query("pageSize") int pageSize,
                                                                          @Query("sign") String sign);

    /**
     * 获取用户道具卡数量
     */
    @GET("api/Home/GetUserProps")
    Observable<UserProps> getUserProps(@Query("user_id") int user_id,
                                       @Query("propsType") int propsType,
                                       @Query("sign") String sign);

    /**
     * 读者推荐
     */
    @POST("api/Home/PostRecommend")
    Observable<RecommendResponse> postRecommend(@Query("user_id") int user_id,
                                                @Query("contribute_id") int contribute_id,
                                                @Query("contribute_type") int contribute_type,
                                                @Query("recommend_type") int recommend_type,
                                                @Query("pay_device") int pay_device,
                                                @Query("pay_type") int pay_type,
                                                @Query("sign") String sign,
                                                @Body RecommendClass recommendClass);

    /**
     * 获取个人推荐语列表
     */
    @GET("api/Home/GetOneRecommendMsg")
    Observable<PeopleRecommendRespose> getOneRecommendMsg(@Query("contribute_id") int contribute_id,
                                                          @Query("contribute_type") int contribute_type,
                                                          @Query("from_uid") int from_uid,
                                                          @Query("pageIndex") int pageIndex,
                                                          @Query("pageSize") int pageSize,
                                                          @Query("sign") String sign);


    /**
     * 关键字搜索笔会/标签搜索/地区搜索
     */
    @GET("api/PenPalwill/GetkeywordSearch")
    Observable<PenpalResponse> getPenPalListByKeyword(@Query("user_id") int user_id,
                                                      @Query("label") String label,
                                                      @Query("penclubname") String penclubname,
                                                      @Query("district") String district,
                                                      @Query("pageIndex") int pageIndex,
                                                      @Query("pageSize") int pageSize,
                                                      @Query("sign") String sign);

    /**
     * 我的笔友会+推荐的笔友会
     */
    @GET("api/PenPalwill/GetMeAndRecommendPenpalwill")
    Observable<PenpalHomeResponse> getPenpalHome(@Query("user_id") int user_id,
                                                 @Query("sign") String sign);

    /**
     * 我的所有笔友会
     */
    @GET("api/PenPalwill/GetPenpalwillInfo")
    Observable<PenpalResponse> getJoinedPenpal(@Query("user_id") int user_id,
                                               @Query("pageIndex") int pageIndex,
                                               @Query("pageSize") int pageSize,
                                               @Query("sign") String sign);


    /**
     * Ta的所有笔友会
     */
    @GET("api/User/GetTaPenpalwill")
    Observable<PenpalResponse> getTaJoinedPenpal(@Query("user_id") int user_id,
                                                 @Query("ta_user_id") int ta_user_id,
                                                 @Query("pageIndex") int pageIndex,
                                                 @Query("pageSize") int pageSize,
                                                 @Query("sign") String sign);


    /**
     * 获取笔友会公告
     */
    @GET("api/PenPalwill/GetAnnounCement")
    Observable<PenpalNoticeResponse> getNotice(@Query("user_id") int user_id, @Query("penpalwill_id") int penpalwill_id,
                                               @Query("sign") String sign);

    /**
     * 获取更多推荐语
     */
    @GET("api/Home/GetMoreRecommendMsg")
    Observable<RecomendMsg> getMoreRecommendMsg(@Query("contribute_id") int contribute_id,
                                                @Query("contribute_type") int contribute_type,
                                                @Query("pageIndex") int pageIndex,
                                                @Query("pageSize") int pageSize,
                                                @Query("sign") String sign);

    /**
     * 连载翻页
     */
    @GET("api/Home/GetFEPageTurn")
    Observable<ArticleDetailsResponse> getFEPageTurn(@Query("user_id") int user_id,
                                                     @Query("serialize_id") int serialize_id,
                                                     @Query("sort") int sort,
                                                     @Query("type") int type,
                                                     @Query("sign") String sign);

    /**
     * 获取文章详情下的评论
     */
    @GET("api/Home/GetcommentDetail")
    Observable<CommentDetails> getcommentDetail(@Query("user_id") int user_id,
                                                @Query("contribute_id") int contribute_id,
                                                @Query("Sort") int Sort,
                                                @Query("pageIndex") int pageIndex,
                                                @Query("pageSize") int pageSize,
                                                @Query("sign") String sign);

    /**
     * 帖子详情下的评论
     */
    @GET("api/PenPalwill/GetcommentDetail")
    Observable<CommentDetails> getPostCommentDetail(@Query("user_id") int user_id,
                                                    @Query("topic_id") int topic_id,
                                                    @Query("Sort") int Sort,
                                                    @Query("pageIndex") int pageIndex,
                                                    @Query("pageSize") int pageSize,
                                                    @Query("sign") String sign);

    /**
     * 点击收藏/点击取消
     */
    @GET("api/User/GetIsCollect")
    Observable<INetBean> getIsCollect(@Query("user_id") int user_id,
                                      @Query("type") int type,
                                      @Query("content_id") int content_id,
                                      @Query("sign") String sign);

    /**
     * 获取我是否收藏
     */
    @GET("api/Home/GetIsShouChang")
    Observable<UserCollect> getIsShouChang(@Query("user_id") int user_id,
                                           @Query("contribute_id") int contribute_id,
                                           @Query("type") int type,
                                           @Query("sign") String sign);


    /**
     * 获取笔友会标签
     */
    @GET("api/PenPalwill/Getpenpalwilllabel")
    Observable<LabelResponse> getPenpalLabels(@Query("rnd") int rnd,
                                              @Query("sign") String sign);

    /**
     * 修改笔友会信息
     */
    @POST("api/PenPalwill/PostUpdatePenpalwill")
    Observable<INetBean> editPenpalMsg(@Query("user_id") int user_id,
                                       @Query("penpalwill_id") int penpalwill_id,
                                       @Query("district") String district,
                                       @Query("sign") String sign,
                                       @Body EditPenpalMsgBody signatureClass);


    /**
     * 文章/帖子分享
     */
    @GET("api/Lib/GetShareInformation")
    Observable<ShareInformation> getShareInformation(@Query("type") int type,
                                                     @Query("contribute_id") int contribute_id,
                                                     @Query("type_id") int type_id,
                                                     @Query("user_id") int user_id,
                                                     @Query("penpalwill_id") int penpalwill_id,
                                                     @Query("sign") String sign);

    /**
     * 笔友会成员查看/成员管理查看
     */
    @GET("api/PenPalwill/GetpenpalwillPersonnelViewManage")
    Observable<MemberMsgResponse> getPenpalMember(@Query("user_id") int user_id,
                                                  @Query("penpalwill_id") int penpalwill_id,
                                                  @Query("pageIndex") int pageIndex,
                                                  @Query("pageSize") int pageSize,
                                                  @Query("sign") String sign);

    /**
     * 添加笔友会公告
     */
    @POST("api/PenPalwill/PostAddAnnounCement")
    Observable<INetBean> addPenpalNotice(@Query("user_id") int user_id,
                                         @Query("penpalwill_id") int penpalwill_id,
                                         @Query("sign") String sign, @Body AddNoticeBody contentClass);

    /**
     * 获取单个评论下的所有回复
     */
    @GET("api/Lib/GetOnecommentDetail")
    Observable<CommenOneAllDetails> getOnecommentDetail(@Query("user_id") int user_id,
                                                        @Query("comment_id") int comment_id,
                                                        @Query("pageIndex") int pageIndex,
                                                        @Query("pageSize") int pageSize,
                                                        @Query("sign") String sign);

    /**
     * 获取单个留言
     */
    @GET("api/Lib/GetOnecomment")
    Observable<CommentDetails> getOnecomment(@Query("user_id") int user_id,
                                             @Query("comment_id") int comment_id,
                                             @Query("sign") String sign);

    /**
     * 获取我的主页 我的关注 1，我的粉丝 2 ,我的黑名单 3
     */
    @GET("api/User/GetSetUserRelationships")
    Observable<SearchAuthorResponse> getSetUserRelationships(@Query("user_id") int user_id,
                                                             @Query("type") int type,
                                                             @Query("page") int page,
                                                             @Query("pageSize") int pageSize,
                                                             @Query("sign") String sign);

    /**
     * 获取TA的主页 我的关注 1，我的粉丝 2 ,我的黑名单 3
     */
    @GET("api/User/GetTaRelationships")
    Observable<SearchAuthorResponse> getTaUserRelationships(@Query("user_id") int user_id,
                                                            @Query("ta_user_id") int ta_user_id,
                                                            @Query("type") int type,
                                                            @Query("page") int page,
                                                            @Query("pageSize") int pageSize,
                                                            @Query("sign") String sign);

    /**
     * 文章评论/评论回复/回复回复
     */
    @POST("api/Home/PostCommentOrReplyAdd")
    Observable<ResponseBody> postCommentOrReplyAdd(@Query("user_id") int user_id,
                                                   @Query("contribute_id") int contribute_id,
                                                   @Query("comment_id") int comment_id,
                                                   @Query("reply_id") int reply_id,
                                                   @Query("sign") String sign,
                                                   @Body ContentClass contentClass);


    /**
     * 设置/取消笔友会公告
     */
    @GET("api/PenPalwill/GetSetAnnounCement")
    Observable<INetBean> setTopPenpalNotice(@Query("user_id") int user_id,
                                            @Query("penpalwill_id") int penpalwill_id,
                                            @Query("announCement_id") int announCement_id,
                                            @Query("sign") String sign);

    /**
     * 删除笔友会公告
     */
    @GET("api/PenPalwill/GetDelAnnounCement")
    Observable<INetBean> deletePenpalNotice(@Query("user_id") int user_id,
                                            @Query("penpalwill_id") int penpalwill_id,
                                            @Query("announCement_id") int announCement_id,
                                            @Query("sign") String sign);

    /**
     * 修改笔友会公告
     */
    @POST("api/PenPalwill/PostUpDateAnnounCement")
    Observable<INetBean> editPenpalNotice(@Query("user_id") int user_id,
                                          @Query("announCement_id") int announCement_id,
                                          @Query("sign") String sign, @Body EditNoticeBody contentClass);

    /**
     * 帖子置顶/取消置顶
     */
    @GET("api/PenPalwill/GetPostStop")
    Observable<INetBean> setTopPenpalArticle(@Query("user_id") int user_id,
                                             @Query("topic_id") int topic_id,
                                             @Query("penpalwill_id") int penpalwill_id,
                                             @Query("sign") String sign);

    /**
     * 帖子删除
     */
    @GET("api/PenPalwill/GetPostDelete")
    Observable<INetBean> deletePenpalArticle(@Query("user_id") int user_id,
                                             @Query("topic_id") int topic_id,
                                             @Query("penpalwill_id") int penpalwill_id,
                                             @Query("sign") String sign);

    /**
     * 帖子推荐到广场/取消推荐
     */
    @GET("api/PenPalwill/GetPostIsPlaza")
    Observable<INetBean> pushPiazza(@Query("user_id") int user_id,
                                    @Query("topic_id") int topic_id,
                                    @Query("penpalwill_id") int penpalwill_id,
                                    @Query("type") int type,
                                    @Query("sign") String sign);

    /**
     * 笔友会申请审核(获取申请加入笔友会的成员)
     */
    @GET("api/PenPalwill/GetpenpalwillPersonnelAudit")
    Observable<PenpalJoinVerifyResponse> getJoinRequestMember(@Query("user_id") int user_id,
                                                              @Query("penpalwill_id") int penpalwill_id,
                                                              @Query("auditState") String auditState,
                                                              @Query("pageIndex") int pageIndex,
                                                              @Query("pageSize") int pageSize,
                                                              @Query("sign") String sign);

    /**
     * 笔会申请通过/拒绝
     */
    @GET("api/PenPalwill/GetpenpalwillIsPass")
    Observable<INetBean> isAgreeJoinPenpal(@Query("user_id") int user_id,
                                           @Query("penpalwill_id") int penpalwill_id,
                                           @Query("auditState") String auditState,
                                           @Query("apply_userid") int apply_userid,
                                           @Query("sign") String sign);

    /**
     * 设置加入笔友会是否需要审批
     */
    @GET("api/PenPalwill/GetSetPenpalwillRatify")
    Observable<INetBean> joinPenpalSwitch(@Query("user_id") int user_id,
                                          @Query("penpalwill_id") int penpalwill_id,
                                          @Query("sign") String sign);

    /**
     * 评论点赞（任何评论）
     */
    @GET("api/Lib/GetCommentlike")
    Observable<INetBean> getCommentlike(@Query("user_id") int user_id,
                                        @Query("type") int type,
                                        @Query("obj_id") int obj_id,
                                        @Query("comment_id") int comment_id,
                                        @Query("sign") String sign);

    /**
     * 取消评论点赞（任何评论）
     */
    @GET("api/Home/GetOfflike")
    Observable<INetBean> cancelCommentLike(@Query("user_id") int user_id,
                                           @Query("type") String type,
                                           @Query("contribute_id") int contribute_id,
                                           @Query("sign") String sign);

    /**
     * 设置笔友会帖子是否公开
     */
    @GET("api/PenPalwill/GetSetPenpalwillispublic")
    Observable<INetBean> setPostIsPublic(@Query("user_id") int user_id,
                                         @Query("penpalwill_id") int penpalwill_id,
                                         @Query("sign") String sign);

    /**
     * 判断当前用户是否有笔友会
     */
    @GET("api/PenPalwill/GetIsNull")
    Observable<INetBean> userIsHasPenpal(@Query("user_id") int user_id,
                                         @Query("sign") String sign);

    /**
     * 选择发帖对象发帖
     */
    @POST("api/PenPalwill/Postpostmessage")
    Observable<INetBean> postSelectPenpal(@Query("user_id") int user_id,
                                          @Query("penpalwill_id") int penpalwill_id,
                                          @Query("sign") String sign,
                                          @Body SubmitPostBody contentClass);

    /**
     * 获取用户基本信息
     */
    @GET("api/User/GetUserInfo")
    Observable<UserInfo> getUserInfo(@Query("user_id") int user_id,
                                     @Query("sign") String sign);

    /**
     * 完善用户基本信息
     */
    @POST("api/User/PostUserSetPerfectInfo")
    Observable<INetBean> postUserSetPerfectInfo(@Query("user_id") int user_id,
                                                @Query("pseudonym") String pseudonym,
                                                @Query("sex") String sex,
                                                @Query("birthday") String birthday,
                                                @Query("city") String city,
                                                @Query("sign") String sign,
                                                @Body UpLoadFile upLoadFile);

    /**
     * 扫描二维码登陆
     */
    @GET("api/Article/GetQRCodeLog")
    Observable<INetBean> sweepQrCodeLogin(@Query("user_id") int user_id,
                                          @Query("uip") String uip,
                                          @Query("sign") String sign);

    /**
     * 创建笔友会
     */
    @POST("api/PenPalwill/Postinsertpenpalwill")
    Observable<INetBean> createPenpal(@Query("user_id") int user_id,
                                      @Query("district") String district,
                                      @Query("sign") String sign,
                                      @Body EditPenpalMsgBody signatureClass);

    /**
     * 获取榕树叶充值套餐列表
     */
    @GET("api/User/GetRongShuLeaf")
    Observable<PaySetMeal> getRongShuLeaf(@Query("rnd") int rnd,
                                          @Query("sign") String sign);

    /**
     * 扫描二维码登陆
     */
    @GET("api/User/GetMyProps")
    Observable<CardBagInfo> getMyProps(@Query("user_id") int user_id,
                                       @Query("sign") String sign);

    /**
     * 获取充值/消费记录
     */
    @GET("api/User/GetTopUpRecord")
    Observable<PayDetail> getTopUpRecord(@Query("user_id") int user_id,
                                         @Query("type") String type,
                                         @Query("page") int page,
                                         @Query("pagesize") int pagesize,
                                         @Query("sign") String sign);

    /**
     * 创建/加入(创建笔会等级判断)
     */
    @GET("api/PenPalwill/GetCreatePermissions")
    Observable<INetBean> createPenpalPermission(@Query("user_id") int user_id,
                                                @Query("sign") String sign);

    /**
     * 获取分享url
     */
    @GET("api/Lib/GetShareInformationAPP")
    Observable<ShareInformation> getShareUrl(@Query("user_id") int user_id,
                                             @Query("sign") String sign);

    /**
     * 我的帖子
     */
    @GET("api/User/GetMyForum")
    Observable<PenpalArticleResponse> getMyForum(@Query("user_id") int user_id,
                                                 @Query("page") int page,
                                                 @Query("pagesize") int pagesize,
                                                 @Query("sign") String sign);

    /**
     * 我的推荐
     */
    @GET("api/User/GetMyRecommend")
    Observable<Recommend> getMyRecommend(@Query("user_id") int user_id,
                                         @Query("page") int page,
                                         @Query("pagesize") int pagesize,
                                         @Query("sign") String sign);

    /**
     * 笔友会成员管理操作(升级为副会长/降级为普通成员/踢出/移交笔友会)
     */
    @GET("api/PenPalwill/GetpenpalwillPersonnelPositionManage")
    Observable<INetBean> penpalMemberOption(@Query("user_id") int user_id,
                                            @Query("penpalwill_id") int penpalwill_id,
                                            @Query("Position_user_id") int Position_user_id,
                                            @Query("OperatelType") String OperatelType,
                                            @Query("sign") String sign);

    /**
     * 笔友会搜索帖子列表/笔友会搜索文章列表
     */
    @GET("api/PenPalwill/GetPenpalwillPostsSelect")
    Observable<PenpalArticleResponse> penpalSearchArticleList(@Query("user_id") int user_id,
                                                              @Query("penpalwill_id") int penpalwill_id,
                                                              @Query("searchWhere") String searchWhere,
                                                              @Query("type") int type,
                                                              @Query("pageIndex") int pageIndex,
                                                              @Query("pageSize") int pageSize,
                                                              @Query("sign") String sign);

    /**
     * 我的分享-文章列表
     */
    @GET("api/User/GetMyShare")
    Observable<ArticleListResponse> getMyShareArticle(@Query("user_id") int user_id,
                                                      @Query("type") int type,
                                                      @Query("pageIndex") int page,
                                                      @Query("pageSize") int pagesize,
                                                      @Query("sign") String sign);

    /**
     * 我的分享-帖子列表
     */
    @GET("api/User/GetMyShare")
    Observable<PenpalArticleResponse> getMySharePost(@Query("user_id") int user_id,
                                                     @Query("type") int type,
                                                     @Query("pageIndex") int page,
                                                     @Query("pageSize") int pagesize,
                                                     @Query("sign") String sign);

    /**
     * 我的收藏
     */
    @GET("api/User/GetMyCollect")
    Observable<EnshrineInfo> getMyCollect(@Query("user_id") int user_id,
                                          @Query("type") int type,
                                          @Query("pageIndex") int pageIndex,
                                          @Query("pageSize") int pageSize,
                                          @Query("sign") String sign);

    /**
     * 我的浏览记录
     */
    @GET("api/User/GetMyBrowsingHistory")
    Observable<TodayRecord> getMyBrowsingHistory(@Query("user_id") int user_id,
                                                 @Query("type") int type,
                                                 @Query("page") int page,
                                                 @Query("pagesize") int pagesize,
                                                 @Query("sign") String sign);

    /**
     * 修改密码
     */
    @POST("api/User/PostUserSetPwd")
    Observable<ResetPassword> postUserSetPwd(@Query("user_id") int user_id,
                                             @Query("code") String code,
                                             @Query("sign") String sign,
                                             @Body UpdateUserClass updateUserClass);

    /**
     * 绑定手机号码
     */
    @GET("api/User/GetBindingMobile")
    Observable<INetBean> getBindingMobile(@Query("user_id") int user_id,
                                          @Query("mobile") String mobile,
                                          @Query("sms_code") String sms_code,
                                          @Query("key") String key,
                                          @Query("sign") String sign);

    /**
     * 更换手机号码---验证验证码
     */
    @GET("api/User/GetGengHuanMobile")
    Observable<INetBean> getGengHuanMobile(@Query("user_id") int user_id,
                                           @Query("mobile") String mobile,
                                           @Query("sms_code") String sms_code,
                                           @Query("sign") String sign);

    /**
     * 获取隐私设置/消息推送设置
     */
    @GET("api/User/GetPrivacy")
    Observable<PrivacyInfo> getPrivacy(@Query("user_id") int user_id,
                                       @Query("sign") String sign);

    /**
     * 隐私设置
     */
    @GET("api/User/GetSetPrivacy")
    Observable<INetBean> getSetPrivacy(@Query("user_id") int user_id,
                                       @Query("recommend") int recommend,
                                       @Query("followMe") int followMe,
                                       @Query("sendOffline") int sendOffline,
                                       @Query("browseHomePage") int browseHomePage,
                                       @Query("browseMypen") int browseMypen,
                                       @Query("joinMypen") int joinMypen,
                                       @Query("sign") String sign);

    /**
     * 消息推送设置
     */
    @GET("api/User/GetMsgPush")
    Observable<INetBean> getMsgPush(@Query("user_id") int user_id,
                                    @Query("push_zan") int push_zan,
                                    @Query("push_pinglun") int push_pinglun,
                                    @Query("push_aite") int push_aite,
                                    @Query("push_wenzhang") int push_wenzhang,
                                    @Query("push_send") int push_send,
                                    @Query("sign") String sign);

    /**
     * 关于
     */
    @GET("api/User/GetAbout")
    Observable<AboutUs> getAbout(@Query("rnd") int rnd,
                                 @Query("sign") String sign);

    /**
     * 关于
     */
    @GET("api/Lib/GetLogOut")
    Observable<INetBean> getLogOut(@Query("user_id") int user_id,
                                   @Query("sign") String sign);

    /**
     * 删除用户已读的文章
     */
    @GET("api/Found/GetDeleteReadRecommend")
    Observable<INetBean> deleteRead(@Query("user_id") int user_id,
                                    @Query("contribute_id") int contribute_id,
                                    @Query("contribute_type") int contribute_type,
                                    @Query("sign") String sign);

    /**
     * 帖子详情
     */
    @GET("api/PenPalwill/GetPostDetail")
    Observable<PostDetailsResponse> postDetails(@Query("user_id") int user_id,
                                                @Query("topic_id") int topic_id,
                                                @Query("sign") String sign);

    /**
     * 帖子评论删除/评论回复删除/回复回复删除
     */
    @GET("api/PenPalwill/GetCommentOrReplyDelete")
    Observable<INetBean> postDeleteComment(@Query("user_id") int user_id,
                                           @Query("topic_id") int topic_id,
                                           @Query("comment_id") int comment_id,
                                           @Query("reply_id") int reply_id,
                                           @Query("sign") String sign);

    /**
     * 帖子评论/评论回复/回复回复
     */
    @POST("api/PenPalwill/PostCommentOrReplyAdd")
    Observable<ResponseBody> postComment(@Query("user_id") int user_id,
                                         @Query("penpalwill_id") int penpalwill_id,
                                         @Query("topic_id") int topic_id,
                                         @Query("comment_id") int comment_id,
                                         @Query("reply_id") int reply_id,
                                         @Query("sign") String sign,
                                         @Body PostCommentBody contentClass);

    /**
     * APP获取回收站文章名字列表
     */
    @GET("api/Article/GetRecycleBinContribute")
    Observable<RecyclerStationInfo> getRecycleBinContribute(@Query("user_id") int user_id,
                                                            @Query("sign") String sign);

    /**
     * APP恢复已删除的文章
     */
    @GET("api/Article/GetRecoverContribute")
    Observable<INetBean> getRecoverContribute(@Query("user_id") int user_id,
                                              @Query("contribute_id") int contribute_id,
                                              @Query("sign") String sign);

    /**
     * APP彻底删除文章
     */
    @GET("api/Article/GetShiftDeleteContribute")
    Observable<INetBean> getShiftDeleteContribute(@Query("user_id") int user_id,
                                                  @Query("contribute_id") int contribute_id,
                                                  @Query("sign") String sign);

    /**
     * App获取文集名字列表
     */
    @GET("api/Article/GetAppSerial")
    Observable<Article> getAppSerial(@Query("user_id") int user_id,
                                     @Query("isSerial") String isSerial,
                                     @Query("pageIndex") int pageIndex,
                                     @Query("pageSize") int pageSize,
                                     @Query("sign") String sign);

    /**
     * 获取用户所有文章列表
     */
    @GET("api/User/GetMyArticleList")
    Observable<CollectedArticle> getUserAritcle(@Query("user_id") int user_id,
                                                @Query("type") int type,
                                                @Query("page") int pageIndex,
                                                @Query("pagesize") int pageSize,
                                                @Query("sign") String sign);

    /**
     * 获取Ta所有文章列表
     */
    @GET("api/User/GetHisArticleList")
    Observable<ArticleListResponse> getTaAritcle(@Query("user_id") int user_id,
                                                 @Query("page") int pageIndex,
                                                 @Query("pagesize") int pageSize,
                                                 @Query("sign") String sign);

    /**
     * APP修改文集
     */
    @GET("api/Article/GetUpdateSerial")
    Observable<INetBean> getUpdateSerial(@Query("user_id") int user_id,
                                         @Query("serial_id") int serial_id,
                                         @Query("serial_name") String serial_name,
                                         @Query("sign") String sign);

    /**
     * APP创建文集
     */
    @GET("api/Article/GetAddSerial")
    Observable<INetBean> getAddSerial(@Query("user_id") int user_id,
                                      @Query("serial_name") String serial_name,
                                      @Query("isSerial") String isSerial,
                                      @Query("sign") String sign);

    /**
     * APP删除文集
     */
    @GET("api/Article/GetDeleteSerial")
    Observable<INetBean> getDeleteSerial(@Query("user_id") int user_id,
                                         @Query("serial_id") int serial_id,
                                         @Query("sign") String sign);

    /**
     * APP获取文集下的文章列表
     */
    @GET("api/Article/GetMyArticle")
    Observable<CollectedArticle> getMyArticle(@Query("user_id") int user_id,
                                              @Query("serialize_id") int serialize_id,
                                              @Query("type") int type,
                                              @Query("page") int page,
                                              @Query("pagesize") int pagesize,
                                              @Query("sign") String sign);

    /**
     * APP删除文章
     */
    @GET("api/Article/GetDeleteContribute")
    Observable<INetBean> getDeleteContribute(@Query("user_id") int user_id,
                                             @Query("contribute_id") int contribute_id,
                                             @Query("sign") String sign);

    /**
     * 获取第三方账号绑定信息和实名认证信息
     */
    @GET("api/User/GetThirdParty")
    Observable<ThirdPartyInfo> getThirdParty(@Query("user_id") int user_id,
                                             @Query("sign") String sign);

    /**
     * 我的私信
     */
    @GET("api/User/GetMyPrivateMessage")
    Observable<DirectMessage> getMyPrivateMessage(@Query("user_id") int user_id,
                                                  @Query("pageIndex") int pageIndex,
                                                  @Query("pageSize") int pageSize,
                                                  @Query("sign") String sign);

    /**
     * 获取我的消息页面的未读信息数
     */
    @GET("api/User/GetMsgCount")
    Observable<MessageInfo> getMsgCount(@Query("user_id") int user_id,
                                        @Query("sign") String sign);

    /**
     * @ 我的消息
     */
    @GET("api/User/GetAtMyMsg")
    Observable<AtMineMessage> getAtMyMsg(@Query("user_id") int user_id,
                                         @Query("pageIndex") int pageIndex,
                                         @Query("pageSize") int pageSize,
                                         @Query("sign") String sign);

    /**
     * 我的系统消息
     */
    @GET("api/User/GetSystemMessage")
    Observable<SystemMessage> getSystemMessage(@Query("user_id") int user_id,
                                               @Query("page") int page,
                                               @Query("pagesize") int pagesize,
                                               @Query("sign") String sign);

    /**
     * 点击@我消息阅读
     */
    @GET("api/User/GetSetReadAtMyMsg")
    Observable<INetBean> getSetReadAtMyMsg(@Query("AtMyMsg_id") int AtMyMsg_id,
                                           @Query("sign") String sign);

    /**
     * 私信消息列
     */
    @GET("api/User/GetReceiveMessage")
    Observable<DirectChat> getReceiveMessage(@Query("send_userid") int send_userid,
                                             @Query("receive_userid") int receive_userid,
                                             @Query("pageIndex") int pageIndex,
                                             @Query("pageSize") int pageSize,
                                             @Query("sign") String sign);


    /**
     * 发送私信消息
     */
    @POST("api/User/PostSendMessage")
    Observable<INetBean> postSendMessage(@Query("send_userid") int send_userid,
                                         @Query("receive_userid") int receive_userid,
                                         @Query("sign") String sign,
                                         @Body sixinClass sixinClass);

    /**
     * 实名认证
     */
    @GET("api/User/GetRealNameAuthentication")
    Observable<INetBean> getRealNameAuthentication(@Query("user_id") int user_id,
                                                   @Query("id_card") String id_card,
                                                   @Query("name") String name,
                                                   @Query("sign") String sign);

    /**
     * 第三方账户绑定
     */
    @GET("api/User/GetBindingQQWechatWeiBo")
    Observable<INetBean> getBindingQQWechatWeiBo(@Query("user_id") int user_id,
                                                 @Query("type") int type,
                                                 @Query("open") String open,
                                                 @Query("nickname") String nickname,
                                                 @Query("sign") String sign);

    /**
     * 第三方账户解绑
     */
    @GET("api/User/GetUnlinkQQWechatWeiBo")
    Observable<INetBean> getUnlinkQQWechatWeiBo(@Query("user_id") int user_id,
                                                @Query("type") int type,
                                                @Query("sign") String sign);

    /**
     * 第三方账户登陆
     */
    @POST("api/User/PostQQWechatWeiBoLog")
    Observable<PasswordLogin> postQQWechatWeiBoLog(@Query("type") int type,
                                                   @Query("registrationid") String registrationid,
                                                   @Query("sign") String sign,
                                                   @Body ThirdPartyClass partyClass);

    /**
     * 完善标签
     */
    @POST("api/User/PostPerfectLable")
    Observable<INetBean> postPerfectLable(@Query("user_id") int user_id,
                                          @Query("sign") String sign,
                                          @Body List<Integer> integers);

    /**
     * 浏览
     */
    @GET("api/Home/Getbrowse")
    Observable<INetBean> getbrowse(@Query("user_id") int user_id,
                                   @Query("contribute_id") int contribute_id,
                                   @Query("type") int type,
                                   @Query("code") String code,
                                   @Query("sign") String sign);

    /**
     * 离开文章时填写对文章的行为记录
     */
    @GET("api/Home/GetLogUserBehavior")
    Observable<INetBean> getLogUserBehavior(@Query("user_id") int user_id,
                                            @Query("contribute_id") int contribute_id,
                                            @Query("ScrollingPercentMax") int ScrollingPercentMax,
                                            @Query("TotalStayTime") int TotalStayTime,
                                            @Query("sign") String sign);

    /**
     * 每日首次登陆APP获取经验
     */
    @GET("api/User/GetFirstLogInExp")
    Observable<INetBean> getFirstLogInExp(@Query("user_id") int user_id,
                                          @Query("sign") String sign);

    //HttpContext File上传图片
    @Multipart
    @POST("api/PCArticle/PostAjaxImgFile")
    Observable<UpLoadImage> uploadOneFile(@Part MultipartBody.Part file);


    @Multipart
    @POST("api/PCArticle/PostAjaxImgFile")
    Observable<UpLoadImage> uploadMoreFile(@PartMap Map<String, RequestBody> files);

    /**
     * 点击充值生成订单
     */
    @GET("api/User/GetTopUp")
    Observable<OrderInfo> getTopUp(@Query("user_id") int user_id,
                                   @Query("pay_device") int pay_device,
                                   @Query("pay_way") int pay_way,
                                   @Query("money") int money,
                                   @Query("LeafNumber") int LeafNumber,
                                   @Query("sign") String sign);

    /**
     * 获取用户是否把我拉黑
     */
    @GET("api/Lib/GetUserIsBlockMe")
    Observable<IsAtUserBlackResponse> isAtUserBlack(@Query("user_id") int user_id,
                                                    @Query("user_id_to") int user_id_to,
                                                    @Query("sign") String sign);

    /**
     * 编辑日签
     */
    @POST("api/Home/PostEditSign")
    Observable<INetBean> editDaySign(@Query("signMaking_id") int signMaking_id,
                                     @Query("user_id") int user_id,
                                     @Query("sign") String sign,
                                     @Body MakeDaySignBody body);

    /**
     * 制作日签
     */
    @POST("api/Home/PostSignMaking")
    Observable<INetBean> makeDaySign(@Query("user_id") int user_id,
                                     @Query("sign") String sign,
                                     @Body MakeDaySignBody body);

    /**
     * 获取账号信息
     */
    @GET("api/User/GetAccountModel")
    Observable<AccountInformation> getAccountModel(@Query("user_id") int user_id,
                                                   @Query("sign") String sign);

    /**
     * 获取日签和制作库
     */
    @POST("api/Home/PostDaySign")
    Observable<DaySignListResponse> getDaySignList(@Query("user_id") int user_id,
                                                   @Query("type") int type,
                                                   @Query("pageIndex") int pageIndex,
                                                   @Query("pageSize") int pageSize,
                                                   @Query("sign") String sign,
                                                   @Body MakeDaySignBody body);

    /**
     * 获取文章属性
     */
    @GET("api/Home/GetArticleAttribute")
    Observable<ArticleAttribute> getArticleAttribute(@Query("user_id") int user_id,
                                                     @Query("contribute_id") int contribute_id,
                                                     @Query("sign") String sign);

    /**
     * 获取日签详情
     */
    @GET("api/Home/GetDaySign")
    Observable<DaySignDetailsResponse> getDaySignInfo(@Query("type") int type,
                                                      @Query("obj_id") int obj_id,
                                                      @Query("user_id") int user_id,
                                                      @Query("sign") String sign);

    /**
     * 获取首页日签
     */
    @GET("api/Home/GetDaySign")
    Observable<DaySignInfo> getDaySign(@Query("user_id") int user_id,
                                       @Query("sign") String sign);


    /**
     * 日签点赞
     */
    @GET("api/Home/GetDaySignLike")
    Observable<INetBean> GetDaySignLike(@Query("user_id") int user_id,
                                        @Query("dailyCheckId") int dailyCheckId,
                                        @Query("type") int type,
                                        @Query("sign") String sign);

    /**
     * 查看签到
     */
    @GET("api/User/GetSelectSignIn")
    Observable<SignListResponse> getSelectSign(@Query("user_id") int user_id,
                                               @Query("sign") String sign);

    /**
     * 每日签到/补签
     */
    @POST("api/User/PostSignIn")
    Observable<SignDayResponse> postSignIn(@Query("user_id") int user_id,
                                           @Query("remark") int remark,
                                           @Query("sign") String sign,
                                           @Body SignInBody body);

    /**
     * 删除私信
     */
    @GET("api/User/GetDeletePrivatechat")
    Observable<INetBean> getDeletePrivatechat(@Query("send_userid") int send_userid,
                                              @Query("receive_userid") int receive_userid,
                                              @Query("sign") String sign);

    /**
     * 删除@我的/系统消息
     */
    @GET("api/User/GetDeleteMsg")
    Observable<INetBean> getDeleteMsg(@Query("obj_id") int obj_id,
                                      @Query("type") int type,
                                      @Query("sign") String sign);


    /**
     * 获取草稿内容
     */
    @GET("api/Home/GetArticleBody")
    Observable<DraftResponse> getDraft(@Query("contribute_id") int obj_id,
                                       @Query("sign") String sign);

    /**
     * 查询实名认证信息
     */
    @GET("api/User/GetSelectRealNameAuthentication")
    Observable<INetBean> getSelectRealNameAuthentication(@Query("user_id") int user_id,
                                                         @Query("sign") String sign);

    /**
     * 申请加V认证
     */
    @POST("api/User/PostVipAuthentication")
    Observable<INetBean> postVipAuthentication(@Query("user_id") int user_id,
                                               @Query("sign") String sign,
                                               @Body PostVipAuthentication authentication);

    /**
     * 连载文集(列表)
     */
    @GET("api/Found/GetSerialize")
    Observable<SerialListResponse> getSerialList(@Query("user_id") int user_id,
                                                 @Query("pageIndex") int pageIndex,
                                                 @Query("pageSize") int pageSize,
                                                 @Query("sign") String sign);

    /**
     * 连载文集目录(列表)
     */
    @GET("api/Home/GetCatalogue")
    Observable<SerialChapterListResponse> getSerialChapterList(@Query("user_id") int user_id,
                                                               @Query("serialize_id") int serialize_id,
                                                               @Query("pageIndex") int pageIndex,
                                                               @Query("pageSize") int pageSize,
                                                               @Query("sign") String sign);

    /**
     * 删除制作日签
     */
    @GET("api/Home/GetDeleteSign")
    Observable<INetBean> deleteDaySign(@Query("user_id") int user_id,
                                       @Query("signMakingIdStr") String signMakingIdStr,
                                       @Query("sign") String sign);

    /**
     * 静默登陆
     */
    @GET("api/User/GetUserQuiesceLog")
    Observable<INetBean> getUserQuiesceLogin(@Query("user_id") int user_id,
                                             @Query("registrationid") String registrationid,
                                             @Query("sign") String sign);

    /**
     * APP移动文章
     */
    @GET("api/Article/GetMoveContribute")
    Observable<INetBean> getMoveContribute(@Query("user_id") int user_id,
                                           @Query("contribute_id") int contribute_id,
                                           @Query("serial_id") int serial_id,
                                           @Query("sign") String sign);

    /**
     * 点赞消息
     */
    @GET("api/User/GetLikeMsg")
    Observable<GiveLikeMessage> getLikeMsg(@Query("user_id") int user_id,
                                           @Query("pageIndex") int pageIndex,
                                           @Query("pageSize") int pageSize,
                                           @Query("sign") String sign);

    /**
     * APP移动文章
     */
    @GET("api/Found/GetActivity")
    Observable<EventListResponse> getEvents(@Query("user_id") int user_id,
                                            @Query("pageIndex") int pageIndex,
                                            @Query("pageSize") int pageSize,
                                            @Query("sign") String sign);

    /**
     * 文章评论删除/回复删除
     */
    @GET("api/Home/GetCommentOrReplyDelete")
    Observable<INetBean> getCommentOrReplyDelete(@Query("user_id") int user_id,
                                                 @Query("contribute_id") int contribute_id,
                                                 @Query("comment_id") int comment_id,
                                                 @Query("reply_id") int reply_id,
                                                 @Query("sign") String sign);

    /**
     * app检查更新
     */
    @GET("api/Lib/GetVersionUpdate")
    Observable<VersionUpdateResponse> checkUpgrade(@Query("type") int type,
                                                   @Query("version") String version,
                                                   @Query("sign") String sign);

    /**
     * 文章点赞用户列表
     */
    @GET("api/User/GetLikeUserList")
    Observable<SearchAuthorResponse> getLikeUserList(@Query("user_id") int user_id,
                                                     @Query("contribute_id") int contribute_id,
                                                     @Query("pageIndex") int pageIndex,
                                                     @Query("pageSize") int pageSize,
                                                     @Query("sign") String sign);

    /**
     * 获取有声文章列表
     */
    @GET("api/Found/GetAudioArticlesList")
    Observable<AudiobookListResponse> GetAudioArticlesList(@Query("user_id") int user_id,
                                                           @Query("sign") String sign);

    /**
     * 获取有声文章详情
     */
    @GET("api/Found/GetAudioArticlesModel")
    Observable<AudiobookDetailsResponse> GetAudioArticlesModel(@Query("user_id") int user_id,
                                                               @Query("audioId") int audioId,
                                                               @Query("sign") String sign);

    /**
     * 获取有声文章评论列表
     */
    @GET("api/Found/GetcommentDetail")
    Observable<CommentDetails> getAudioArticleComment(@Query("user_id") int user_id,
                                                      @Query("audio_id") int audio_id,
                                                      @Query("Sort") int Sort,
                                                      @Query("pageIndex") int pageIndex,
                                                      @Query("pageSize") int pageSize,
                                                      @Query("sign") String sign);

    /**
     * 有声文章评论/评论回复/回复回复
     */
    @POST("api/Found/PostCommentOrReplyAdd")
    Observable<ResponseBody> audiobookPostCommentOrReplyAdd(@Query("user_id") int user_id,
                                                            @Query("audioId") int audioId,
                                                            @Query("comment_id") int comment_id,
                                                            @Query("reply_id") int reply_id,
                                                            @Query("sign") String sign,
                                                            @Body PostCommentBody body);

    /**
     * 有声文章评论/评论回复 删除
     */
    @GET("api/Found/GetCommentOrReplyDelete")
    Observable<INetBean> audiobookCommentOrReplyDelete(@Query("user_id") int user_id,
                                                       @Query("audio_id") int audio_id,
                                                       @Query("comment_id") int comment_id,
                                                       @Query("reply_id") int reply_id,
                                                       @Query("sign") String sign);

    /**
     * 评论消息
     */
    @GET("api/User/GetCemmentMsg")
    Observable<CommentMeMessage> getCommentMeMessage(@Query("user_id") int user_id,
                                                     @Query("pageIndex") int pageIndex,
                                                     @Query("pageSize") int pageSize,
                                                     @Query("sign") String sign);


    /**
     * 点击私信/@我的/文章评论消息，标记全部已读
     */
    @GET("api/User/GetMsgAllRead")
    Observable<INetBean> GetMsgAllRead(@Query("user_id") int user_id,
                                       @Query("type") int type,
                                       @Query("sign") String sign);


    /**
     * 点击文章评论消息阅读
     */
    @GET("api/User/GetSetReadCommentMsg")
    Observable<INetBean> GetSetReadCommentMsg(@Query("commentId") int commentId,
                                              @Query("sign") String sign);

    /**
     * 获取我的文集里不同文章状态的数量
     */
    @GET("api/User/GetStatusCount")
    Observable<CollectedWorkStatusCount> getStatusCount(@Query("userId") int userId,
                                                        @Query("serializeId") int serializeId,
                                                        @Query("sign") String sign);

    /**
     * 获取开屏广告
     */
    @GET("api/Home/GetOpenAD")
    Observable<AdvertResponse> getOpenAD(@Query("random") int random,
                                         @Query("sign") String sign);
}
